package code.whmmm.util.spring.aspect.annotation;

import java.util.Set;
import java.util.TreeSet;

/**
 * 切面执行类型
 * <br/> 创建时间: 2019/12/23 16:54
 *
 * @author whmmm
 */
public class AspectType {

    static final Set<Integer> FLAG_SET;

    static {
        FLAG_SET = new TreeSet<Integer>();
        FLAG_SET.add(1);
        FLAG_SET.add(2);
        // 排除 3 ， 3 是一种兼容旧接口的写法
        FLAG_SET.add(4);
    }


    public static int[] getTowSum(int target) {
        for (Integer i : FLAG_SET) {
            int o = target - i;
            if (FLAG_SET.contains(o)) {
                return new int[]{i, o};
            }
        }
        return null;
    }


    /**
     * 全部
     */
    public static final int ALL = 0;
    /**
     * 方法调用前
     */
    public static final int BEFORE = 1;
    /**
     * 方法调用后
     */
    public static final int AFTER = 2;
    /**
     * 异常时处理
     */
    public static final int THROW = 4;

    /**
     * 此项为兼容旧接口，指定一种情况 BEFORE | AFTER
     */
    public static final int BEFORE_AND_AFTER = 3;
}
